<?php


/* Tendremos que hacer un query para cada dirección MAC, de esta forma
podremos calcular las estadisticas para las plazas de forma individual
y las juntaremos calculando la media todas las plazas de parking*/
//montamos la consulta y la almacenamos en fila

/* Para el calculo de la OCUPACIÓN */

/*Para esta estadística nos interesa devolver una relación entre (hora,ocupacion) tendremos que ir hora por hora
realizando el query que nos devolverá la MAC y el número de veces que apareció ocupado, a partir de ahi calcularemos
la ocupación de ese sensor en esa hora. Entonces crearemos un array de arrays, en el que cada posicion del vector principal
contedrá una tupla formada por un timestamp de la hora concreta a analizar y el porcentaje de ocupación*/

/**
 *	ocupacioni nos devuelve la tasa de ocupación de una hora i concreta
 *	@param $hi indica la hora en que se quiere consultar la tasa de ocupación, valor pasado por referencia
 *	@param $hi_TS indica la hora que se va a consultar en formato TimeStamp, valor pasado por referencia
 *	@param $info contendrá el resultado de consultar la ocupación de la hora, valor pasado por referencia
*/
function ocupacionI(&$hi,&$hi_TS,&$info){
	global $rnombre;
	$formato='Y-m-d H:i:s';
	$fechaf_TS= $hi_TS+(60*60);//avanzamos 1h (60*60 segundos)
	$fecha_f=date($formato,$fechaf_TS);//fecha final convertida a fecha con formato 2000-12-20 21:34:01
    $sql="SELECT MAC,TIEMPO, COUNT(*) AS CUENTA FROM `Prueba` WHERE
			TIEMPO>=TIMESTAMP('$hi') AND TIEMPO<=TIMESTAMP('$fecha_f')
			AND OCUPADO=1 GROUP BY MAC";
	$rnombre = mysql_query($sql) or die('Query failed: ' . mysql_error());
	while($fila = mysql_fetch_array($rnombre, MYSQL_ASSOC)){
		//echo (date($formato,$hi_TS));
		//echo($fila['MAC']." ".$fila['TIEMPO']." ".$fila['CUENTA']);
		$fila['TIEMPO']= $hi_TS*1000;//strtotime($fila['TIEMPO'])* 1000;
		$fila['TIEMPO']+= 60*60*1000;//para añadir una hora debido al JS!!!!!!!!!!
		$ratio_ocupacion= array("OCUPACION" => $fila['CUENTA']/30);
		//echo ($ratio_ocupacion['CUENTA']);
		$info[]=array_merge($fila,$ratio_ocupacion);
	}
}

/**
 *	ocupacionD nos devuelve la tasa de ocupación media de un dia D concreto
 *	@param $hi indica la hora en que se quiere consultar la tasa de ocupación, valor pasado por referencia
 *	@param $hi_TS indica la hora que se va a consultar en formato TimeStamp, valor pasado por referencia
 *	@param $info contendrá el resultado de consultar la ocupación de la hora, valor pasado por referencia
*/
function ocupacionD(&$f_i,&$fi_TS,&$infor){
	for ($i=0;$i<24;$i++){
		ocupacionI($f_i,$fi_TS,$infor);
		$fechai_TS+=60*60; //incrementamos una hora para consultar la siguiente
		$fecha_i=date($formato,$fechai_TS);//para indicar en la consulta la siguiente hora
	}
}
function dispositivo($disp){
    switch ($disp){
        case "ABCDEFGHIOK":
            return 0;
            break;
        case "JLKJÑÑJKJDD":
            return 1;
            break;
        case "jaksfdjañdDD":
            return 2;
            break;
        case "ajdñflkjañkfsd":
            return 3;
            break;
        case "ajdfkañfd":
            return 4;
            break;
    }
}
function ocupacionM(&$fi,&$fi_TS,&$info){
	$month=(int)date("%m",$_GET["fecha"]);
	switch ($month){
		case 1 or 3 or 5 or 7 or 8 or 10 or 12:
			$last_day=31;
			break;
		case 4 or 6 or 9 or 11:
			$last_day=30;
			break;
		case 2:
			$last_day=28;
			break;
	}
    $aux_info=array();
    $ocupacion=0;
    /*Cada pos del array $ocupdisp pertenece a la info de un dia y cada tupla de dentro de esa posicion
    es la informacion relativa a la ocupacion de uno de lo 5 dispositivos*/
    $ocupdisp=array(array("MAC"=>$mac,"FECHA"=>$fi_TS,"OCUPACION" =>($ocupacion/24)),
                    array("MAC"=>$mac,"FECHA"=>$fi_TS,"OCUPACION" =>($ocupacion/24)),
                    array("MAC"=>$mac,"FECHA"=>$fi_TS,"OCUPACION" =>($ocupacion/24)),
                    array("MAC"=>$mac,"FECHA"=>$fi_TS,"OCUPACION" =>($ocupacion/24)),
                    array("MAC"=>$mac,"FECHA"=>$fi_TS,"OCUPACION" =>($ocupacion/24))  
                    );
	for ($i=0;$i<$last_day;$i++){
		//tendremos que hacer la funcion ocupaciond() para cada día del mes! falta englobar lo dl dia en una función
		ocupacionD($fi,$fi_TS,$info);
		foreach ($info as &$tupla){            
            $mac= $tupla['MAC'];
            $ocupaciondisp[dispositivo($mac)]['OCUPACION']+=$tupla['OCUPACION'];    
		}
        for ($i=0;$i<5;$i++){
            $ocupaciondisp[$i]['FECHA']=$fi_TS;
            $ocupaciondisp[$i]['OCUPACION']/=24;//calculamos la tasa media de ocupacion por dia y por dispositivo
        }
        /*Cada posicion de $aux_info[] será una tupla con la informacion relativa a un día
        y dentro de cada uno de esos días tendremos la media de ocupacion de cada una de las plazas*/
        $aux_info[]=$ocupaciondisp;
        $fechai_TS+=60*60*24; //incrementamos un día para consultar el siguiente
        $fecha_i=date($formato,$fechai_TS);//para indicar en la consulta la siguiente hora
	}    
    /*Como obtendremos de ocupacionD() la info de la ocup por horas d ese dia, habra que hacer una media
    por PLAZA Y POR DIA para cada iteracion de este bucle, luego debermos cambiar el dato de la tasa de ocupacion
    asi como el campo de tiempo correspondiente al array info que sera devuelto al JS para ser representado*/

		
}

require("db_prowsn.php");

$datos=array();
$ocupacion=array();
$fecha_i=$_GET["fecha"];
$fechai_TS=strtotime($fecha_i);

$opcion=$_GET["opt"];
	switch ($opcion){
		case "dia":
		    ocupacionD($fecha_i,$fechai_TS,$datos);
			break;
		case "semana":
			//ocupacionS();
			break;
		case "mes":
			ocupacionM($fecha_i,$fechai_TS,$datos);
			break;
	}
echo json_encode($datos);
mysql_free_result($rnombre);
mysql_close($link);
?>